// import com.alibaba.druid.sql.ast.statement.SQLForeignKeyImpl;
// import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
// import com.alibaba.druid.sql.dialect.mysql.ast.*;
// import com.alibaba.druid.sql.dialect.mysql.ast.clause.*;
// import com.alibaba.druid.sql.dialect.mysql.ast.clause.MySqlCaseStatement.MySqlWhenStatement;
// import com.alibaba.druid.sql.dialect.mysql.ast.expr.*;
// import com.alibaba.druid.sql.dialect.mysql.ast.statement.*;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../../../visitor/SQLASTVisitor.h"

class MySqlASTVisitor : virtual public SQLASTVisitor
{
public:
  string_ptr getClass()
  {
    static string_ptr className = make_string_ptr("MySqlASTVisitor");
    return className;
  }

  BOOL_ptr visit(MySqlTableIndex_ptr x);
  void endVisit(MySqlTableIndex_ptr x);

  BOOL_ptr visit(MySqlKey_ptr x);
  void endVisit(MySqlKey_ptr x);

  BOOL_ptr visit(MySqlPrimaryKey_ptr x);
  void endVisit(MySqlPrimaryKey_ptr x);

  // BOOL_ptr visit(MySqlUnique_ptr x) ;

  // void endVisit(MySqlUnique_ptr x) ;

  bool visit(MysqlForeignKey_ptr x);
  void endVisit(MysqlForeignKey_ptr x);

  void endVisit(MySqlPrepareStatement_ptr x);
  BOOL_ptr visit(MySqlPrepareStatement_ptr x);

  void endVisit(MySqlExecuteStatement_ptr x);
  BOOL_ptr visit(MySqlExecuteStatement_ptr x);

  BOOL_ptr visit(MysqlDeallocatePrepareStatement_ptr x);
  void endVisit(MysqlDeallocatePrepareStatement_ptr x);

  void endVisit(MySqlDeleteStatement_ptr x);
  BOOL_ptr visit(MySqlDeleteStatement_ptr x);

  void endVisit(MySqlInsertStatement_ptr x);
  BOOL_ptr visit(MySqlInsertStatement_ptr x);

  void endVisit(MySqlLoadDataInFileStatement_ptr x);
  BOOL_ptr visit(MySqlLoadDataInFileStatement_ptr x);

  void endVisit(MySqlLoadXmlStatement_ptr x);
  BOOL_ptr visit(MySqlLoadXmlStatement_ptr x);

  void endVisit(MySqlShowWarningsStatement_ptr x);
  BOOL_ptr visit(MySqlShowWarningsStatement_ptr x);

  void endVisit(MySqlShowStatusStatement_ptr x);
  BOOL_ptr visit(MySqlShowStatusStatement_ptr x);

  void endVisit(MySqlShowAuthorsStatement_ptr x);
  BOOL_ptr visit(MySqlShowAuthorsStatement_ptr x);

  void endVisit(MysqlShowHtcStatement_ptr x);
  BOOL_ptr visit(MysqlShowHtcStatement_ptr x);

  void endVisit(MysqlShowStcStatement_ptr x);
  BOOL_ptr visit(MysqlShowStcStatement_ptr x);

  void endVisit(CobarShowStatus_ptr x) ;
  BOOL_ptr visit(CobarShowStatus_ptr x) ;

  void endVisit(DrdsShowDDLJobs_ptr x);
  BOOL_ptr visit(DrdsShowDDLJobs_ptr x);

  void endVisit(DrdsCancelDDLJob_ptr x) ;
  BOOL_ptr visit(DrdsCancelDDLJob_ptr x) ;

  void endVisit(DrdsRecoverDDLJob_ptr x);
  BOOL_ptr visit(DrdsRecoverDDLJob_ptr x);

  void endVisit(DrdsRollbackDDLJob_ptr x);
  BOOL_ptr visit(DrdsRollbackDDLJob_ptr x);

  void endVisit(DrdsRemoveDDLJob_ptr x);
  BOOL_ptr visit(DrdsRemoveDDLJob_ptr x);

  void endVisit(DrdsInspectDDLJobCache_ptr x);
  BOOL_ptr visit(DrdsInspectDDLJobCache_ptr x);

  void endVisit(DrdsClearDDLJobCache_ptr x) ;
  BOOL_ptr visit(DrdsClearDDLJobCache_ptr x);

  void endVisit(DrdsChangeDDLJob_ptr x);
  BOOL_ptr visit(DrdsChangeDDLJob_ptr x) ;

  void endVisit(DrdsBaselineStatement_ptr x) ;
  BOOL_ptr visit(DrdsBaselineStatement_ptr x) ;

  void endVisit(DrdsShowGlobalIndex_ptr x);
  BOOL_ptr visit(DrdsShowGlobalIndex_ptr x);

  void endVisit(DrdsShowMetadataLock_ptr x);
  BOOL_ptr visit(DrdsShowMetadataLock_ptr x);

  void endVisit(MySqlBinlogStatement_ptr x);
  BOOL_ptr visit(MySqlBinlogStatement_ptr x);

  void endVisit(MySqlResetStatement_ptr x);
  BOOL_ptr visit(MySqlResetStatement_ptr x);

  void endVisit(MySqlCreateUserStatement_ptr x);
  BOOL_ptr visit(MySqlCreateUserStatement_ptr x);

  void endVisit(MySqlCreateUserStatement_UserSpecification_ptr x);
  BOOL_ptr visit(MySqlCreateUserStatement_UserSpecification_ptr x);

  void endVisit(MySqlPartitionByKey_ptr x);
  BOOL_ptr visit(MySqlPartitionByKey_ptr x);

  void endVisit(MySqlUpdatePlanCacheStatement_ptr x);
  BOOL_ptr visit(MySqlUpdatePlanCacheStatement_ptr x);

  void endVisit(MySqlShowPlanCacheStatusStatement_ptr x);
  BOOL_ptr visit(MySqlShowPlanCacheStatusStatement_ptr x);

  void endVisit(MySqlClearPlanCacheStatement_ptr x);
  BOOL_ptr visit(MySqlClearPlanCacheStatement_ptr x);

  void endVisit(MySqlDisabledPlanCacheStatement_ptr x);
  BOOL_ptr visit(MySqlDisabledPlanCacheStatement_ptr x);

  void endVisit(MySqlExplainPlanCacheStatement_ptr x);
  BOOL_ptr visit(MySqlExplainPlanCacheStatement_ptr x);

  bool visit(MySqlSelectQueryBlock_ptr x);
  void endVisit(MySqlSelectQueryBlock_ptr x);

  BOOL_ptr visit(MySqlOutFileExpr_ptr x);
  void endVisit(MySqlOutFileExpr_ptr x);

  BOOL_ptr visit(MySqlExplainStatement_ptr x);
  void endVisit(MySqlExplainStatement_ptr x);

  BOOL_ptr visit(MySqlUpdateStatement_ptr x);

  void endVisit(MySqlUpdateStatement_ptr x);

  BOOL_ptr visit(MySqlSetTransactionStatement_ptr x);
  void endVisit(MySqlSetTransactionStatement_ptr x);

  BOOL_ptr visit(MySqlShowHMSMetaStatement_ptr x);
  void endVisit(MySqlShowHMSMetaStatement_ptr x);

  BOOL_ptr visit(MySqlShowBinaryLogsStatement_ptr x);
  void endVisit(MySqlShowBinaryLogsStatement_ptr x);

  BOOL_ptr visit(MySqlShowMasterLogsStatement_ptr x);
  void endVisit(MySqlShowMasterLogsStatement_ptr x);

  BOOL_ptr visit(MySqlShowCharacterSetStatement_ptr x);
  void endVisit(MySqlShowCharacterSetStatement_ptr x);

  BOOL_ptr visit(MySqlShowCollationStatement_ptr x);
  void endVisit(MySqlShowCollationStatement_ptr x);

  BOOL_ptr visit(MySqlShowBinLogEventsStatement_ptr x);
  void endVisit(MySqlShowBinLogEventsStatement_ptr x);

  BOOL_ptr visit(MySqlShowContributorsStatement_ptr x);
  void endVisit(MySqlShowContributorsStatement_ptr x);

  BOOL_ptr visit(MySqlShowCreateDatabaseStatement_ptr x);
  void endVisit(MySqlShowCreateDatabaseStatement_ptr x);

  BOOL_ptr visit(MySqlShowCreateEventStatement_ptr x);
  void endVisit(MySqlShowCreateEventStatement_ptr x);

  BOOL_ptr visit(MySqlShowCreateFunctionStatement_ptr x);
  void endVisit(MySqlShowCreateFunctionStatement_ptr x);

  BOOL_ptr visit(MySqlShowCreateProcedureStatement_ptr x);
  void endVisit(MySqlShowCreateProcedureStatement_ptr x);

  BOOL_ptr visit(MySqlShowCreateTriggerStatement_ptr x);
  void endVisit(MySqlShowCreateTriggerStatement_ptr x);

  BOOL_ptr visit(MySqlShowEngineStatement_ptr x);
  void endVisit(MySqlShowEngineStatement_ptr x);

  BOOL_ptr visit(MySqlShowEnginesStatement_ptr x);
  void endVisit(MySqlShowEnginesStatement_ptr x);

  BOOL_ptr visit(MySqlShowErrorsStatement_ptr x);
  void endVisit(MySqlShowErrorsStatement_ptr x);

  BOOL_ptr visit(MySqlShowEventsStatement_ptr x);
  void endVisit(MySqlShowEventsStatement_ptr x);

  BOOL_ptr visit(MySqlShowFunctionCodeStatement_ptr x);
  void endVisit(MySqlShowFunctionCodeStatement_ptr x);

  BOOL_ptr visit(MySqlShowFunctionStatusStatement_ptr x);
  void endVisit(MySqlShowFunctionStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowGrantsStatement_ptr x);
  void endVisit(MySqlShowGrantsStatement_ptr x);

  BOOL_ptr visit(MySqlUserName_ptr x);
  void endVisit(MySqlUserName_ptr x) ;

  BOOL_ptr visit(MySqlAlterDatabaseSetOption_ptr x);
  void endVisit(MySqlAlterDatabaseSetOption_ptr x);

  BOOL_ptr visit(MySqlAlterDatabaseKillJob_ptr x);
  void endVisit(MySqlAlterDatabaseKillJob_ptr x);

  BOOL_ptr visit(MySqlShowMasterStatusStatement_ptr x);
  void endVisit(MySqlShowMasterStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowOpenTablesStatement_ptr x);
  void endVisit(MySqlShowOpenTablesStatement_ptr x);

  BOOL_ptr visit(MySqlShowPluginsStatement_ptr x);
  void endVisit(MySqlShowPluginsStatement_ptr x);

  BOOL_ptr visit(MySqlShowPartitionsStatement_ptr x);
  void endVisit(MySqlShowPartitionsStatement_ptr x);

  BOOL_ptr visit(MySqlShowPrivilegesStatement_ptr x);
  void endVisit(MySqlShowPrivilegesStatement_ptr x);

  BOOL_ptr visit(MySqlShowProcedureCodeStatement_ptr x);
  void endVisit(MySqlShowProcedureCodeStatement_ptr x);

  BOOL_ptr visit(MySqlShowProcedureStatusStatement_ptr x);
  void endVisit(MySqlShowProcedureStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowProcessListStatement_ptr x);
  void endVisit(MySqlShowProcessListStatement_ptr x);

  BOOL_ptr visit(MySqlShowProfileStatement_ptr x);
  void endVisit(MySqlShowProfileStatement_ptr x);

  BOOL_ptr visit(MySqlShowProfilesStatement_ptr x);
  void endVisit(MySqlShowProfilesStatement_ptr x);

  BOOL_ptr visit(MySqlShowRelayLogEventsStatement_ptr x);
  void endVisit(MySqlShowRelayLogEventsStatement_ptr x);

  BOOL_ptr visit(MySqlShowSlaveHostsStatement_ptr x);
  void endVisit(MySqlShowSlaveHostsStatement_ptr x);

  BOOL_ptr visit(MySqlShowSequencesStatement_ptr x);
  void endVisit(MySqlShowSequencesStatement_ptr x);

  BOOL_ptr visit(MySqlShowSlaveStatusStatement_ptr x);
  void endVisit(MySqlShowSlaveStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowSlowStatement_ptr x);
  void endVisit(MySqlShowSlowStatement_ptr x);

  BOOL_ptr visit(MySqlShowTableStatusStatement_ptr x);
  void endVisit(MySqlShowTableStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowTriggersStatement_ptr x);
  void endVisit(MySqlShowTriggersStatement_ptr x);

  BOOL_ptr visit(MySqlShowTraceStatement_ptr x);
  void endVisit(MySqlShowTraceStatement_ptr x);

  BOOL_ptr visit(MySqlShowBroadcastsStatement_ptr x);
  void endVisit(MySqlShowBroadcastsStatement_ptr x);

  BOOL_ptr visit(MySqlShowRuleStatement_ptr x);
  void endVisit(MySqlShowRuleStatement_ptr x);

  BOOL_ptr visit(MySqlShowRuleStatusStatement_ptr x);
  void endVisit(MySqlShowRuleStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowDsStatement_ptr x);
  void endVisit(MySqlShowDsStatement_ptr x);

  BOOL_ptr visit(MySqlShowDdlStatusStatement_ptr x);
  void endVisit(MySqlShowDdlStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowTopologyStatement_ptr x);
  void endVisit(MySqlShowTopologyStatement_ptr x);

  BOOL_ptr visit(MySqlRenameTableStatement_Item_ptr x);
  void endVisit(MySqlRenameTableStatement_Item_ptr x);

  BOOL_ptr visit(MySqlRenameTableStatement_ptr x);
  void endVisit(MySqlRenameTableStatement_ptr x);

  BOOL_ptr visit(MysqlShowDbLockStatement_ptr x);
  void endVisit(MysqlShowDbLockStatement_ptr x);

  BOOL_ptr visit(MySqlShowDatabaseStatusStatement_ptr x);
  void endVisit(MySqlShowDatabaseStatusStatement_ptr x);

  BOOL_ptr visit(MySqlUseIndexHint_ptr x);
  void endVisit(MySqlUseIndexHint_ptr x);

  BOOL_ptr visit(MySqlIgnoreIndexHint_ptr x);
  void endVisit(MySqlIgnoreIndexHint_ptr x);

  BOOL_ptr visit(MySqlLockTableStatement_ptr x);
  void endVisit(MySqlLockTableStatement_ptr x);

  BOOL_ptr visit(MySqlLockTableStatement_Item_ptr x);
  void endVisit(MySqlLockTableStatement_Item_ptr x);

  BOOL_ptr visit(MySqlUnlockTablesStatement_ptr x);
  void endVisit(MySqlUnlockTablesStatement_ptr x);

  BOOL_ptr visit(MySqlForceIndexHint_ptr x);
  void endVisit(MySqlForceIndexHint_ptr x);

  BOOL_ptr visit(MySqlAlterTableChangeColumn_ptr x);
  void endVisit(MySqlAlterTableChangeColumn_ptr x);

  BOOL_ptr visit(MySqlAlterTableOption_ptr x);
  void endVisit(MySqlAlterTableOption_ptr x);

  BOOL_ptr visit(MySqlCreateTableStatement_ptr x);
  void endVisit(MySqlCreateTableStatement_ptr x);

  BOOL_ptr visit(MySqlHelpStatement_ptr x);
  void endVisit(MySqlHelpStatement_ptr x);

  BOOL_ptr visit(MySqlCharExpr_ptr x) ;
  void endVisit(MySqlCharExpr_ptr x) ;

  BOOL_ptr visit(MySqlAlterTableModifyColumn_ptr x);
  void endVisit(MySqlAlterTableModifyColumn_ptr x);

  BOOL_ptr visit(MySqlAlterTableDiscardTablespace_ptr x);
  void endVisit(MySqlAlterTableDiscardTablespace_ptr x);

  BOOL_ptr visit(MySqlAlterTableImportTablespace_ptr x);
  void endVisit(MySqlAlterTableImportTablespace_ptr x);

  BOOL_ptr visit(MySqlCreateTableStatement_TableSpaceOption_ptr x);
  void endVisit(MySqlCreateTableStatement_TableSpaceOption_ptr x);

  BOOL_ptr visit(MySqlAnalyzeStatement_ptr x);
  void endVisit(MySqlAnalyzeStatement_ptr x);

  BOOL_ptr visit(MySqlCreateExternalCatalogStatement_ptr x);
  void endVisit(MySqlCreateExternalCatalogStatement_ptr x);

  BOOL_ptr visit(MySqlAlterUserStatement_ptr x);
  void endVisit(MySqlAlterUserStatement_ptr x);

  BOOL_ptr visit(MySqlOptimizeStatement_ptr x);
  void endVisit(MySqlOptimizeStatement_ptr x);

  BOOL_ptr visit(MySqlHintStatement_ptr x);
  void endVisit(MySqlHintStatement_ptr x);

  BOOL_ptr visit(MySqlOrderingExpr_ptr x) ;
  void endVisit(MySqlOrderingExpr_ptr x) ;

  BOOL_ptr visit(MySqlCaseStatement_ptr x) ;
  void endVisit(MySqlCaseStatement_ptr x) ;

  BOOL_ptr visit(MySqlDeclareStatement_ptr x) ;
  void endVisit(MySqlDeclareStatement_ptr x) ;

  BOOL_ptr visit(MySqlSelectIntoStatement_ptr x);
  void endVisit(MySqlSelectIntoStatement_ptr x);

  BOOL_ptr visit(MySqlCaseStatement_MySqlWhenStatement_ptr x) ;
  void endVisit(MySqlCaseStatement_MySqlWhenStatement_ptr x) ;

  BOOL_ptr visit(MySqlLeaveStatement_ptr x) ;
  void endVisit(MySqlLeaveStatement_ptr x) ;

  BOOL_ptr visit(MySqlIterateStatement_ptr x) ;
  void endVisit(MySqlIterateStatement_ptr x) ;

  BOOL_ptr visit(MySqlRepeatStatement_ptr x);
  void endVisit(MySqlRepeatStatement_ptr x);

  BOOL_ptr visit(MySqlCursorDeclareStatement_ptr x) ;
  void endVisit(MySqlCursorDeclareStatement_ptr x) ;

  BOOL_ptr visit(MySqlUpdateTableSource_ptr x);
  void endVisit(MySqlUpdateTableSource_ptr x);

  BOOL_ptr visit(MySqlAlterTableAlterColumn_ptr x);
  void endVisit(MySqlAlterTableAlterColumn_ptr x);

  BOOL_ptr visit(MySqlAlterTableForce_ptr x);
  void endVisit(MySqlAlterTableForce_ptr x);

  BOOL_ptr visit(MySqlAlterTableLock_ptr x);
  void endVisit(MySqlAlterTableLock_ptr x);

  BOOL_ptr visit(MySqlAlterTableOrderBy_ptr x);
  void endVisit(MySqlAlterTableOrderBy_ptr x);

  BOOL_ptr visit(MySqlAlterTableValidation_ptr x);
  void endVisit(MySqlAlterTableValidation_ptr x);

  BOOL_ptr visit(MySqlSubPartitionByKey_ptr x);
  void endVisit(MySqlSubPartitionByKey_ptr x);

  BOOL_ptr visit(MySqlSubPartitionByList_ptr x);
  void endVisit(MySqlSubPartitionByList_ptr x);

  BOOL_ptr visit(MySqlDeclareHandlerStatement_ptr x) ;
  void endVisit(MySqlDeclareHandlerStatement_ptr x);

  BOOL_ptr visit(MySqlDeclareConditionStatement_ptr x);
  void endVisit(MySqlDeclareConditionStatement_ptr x);

  BOOL_ptr visit(MySqlFlushStatement_ptr x);
  void endVisit(MySqlFlushStatement_ptr x);

  BOOL_ptr visit(MySqlEventSchedule_ptr x);
  void endVisit(MySqlEventSchedule_ptr x);

  BOOL_ptr visit(MySqlCreateEventStatement_ptr x);
  void endVisit(MySqlCreateEventStatement_ptr x);

  BOOL_ptr visit(MySqlCreateAddLogFileGroupStatement_ptr x);
  void endVisit(MySqlCreateAddLogFileGroupStatement_ptr x);

  BOOL_ptr visit(MySqlCreateServerStatement_ptr x);
  void endVisit(MySqlCreateServerStatement_ptr x);

  BOOL_ptr visit(MySqlCreateTableSpaceStatement_ptr x);
  void endVisit(MySqlCreateTableSpaceStatement_ptr x);

  BOOL_ptr visit(MySqlAlterEventStatement_ptr x);
  void endVisit(MySqlAlterEventStatement_ptr x);

  BOOL_ptr visit(MySqlAlterLogFileGroupStatement_ptr x);
  void endVisit(MySqlAlterLogFileGroupStatement_ptr x);

  BOOL_ptr visit(MySqlAlterServerStatement_ptr x);
  void endVisit(MySqlAlterServerStatement_ptr x);

  BOOL_ptr visit(MySqlAlterTablespaceStatement_ptr x);
  void endVisit(MySqlAlterTablespaceStatement_ptr x);

  BOOL_ptr visit(MySqlChecksumTableStatement_ptr x);
  void endVisit(MySqlChecksumTableStatement_ptr x);

  BOOL_ptr visit(MySqlShowDatasourcesStatement_ptr x);

  void endVisit(MySqlShowDatasourcesStatement_ptr x);

  BOOL_ptr visit(MySqlShowNodeStatement_ptr x);
  void endVisit(MySqlShowNodeStatement_ptr x);

  BOOL_ptr visit(MySqlShowHelpStatement_ptr x);
  void endVisit(MySqlShowHelpStatement_ptr x);

  BOOL_ptr visit(MySqlFlashbackStatement_ptr x);
  void endVisit(MySqlFlashbackStatement_ptr x);

  BOOL_ptr visit(MySqlShowConfigStatement_ptr x);
  void endVisit(MySqlShowConfigStatement_ptr x);

  BOOL_ptr visit(MySqlShowPlanCacheStatement_ptr x);
  void endVisit(MySqlShowPlanCacheStatement_ptr x);

  BOOL_ptr visit(MySqlShowPhysicalProcesslistStatement_ptr x);
  void endVisit(MySqlShowPhysicalProcesslistStatement_ptr x);

  BOOL_ptr visit(MySqlRenameSequenceStatement_ptr x);
  void endVisit(MySqlRenameSequenceStatement_ptr x);

  BOOL_ptr visit(MySqlCheckTableStatement_ptr x);
  void endVisit(MySqlCheckTableStatement_ptr x);

  BOOL_ptr visit(MysqlCreateFullTextCharFilterStatement_ptr x);
  void endVisit(MysqlCreateFullTextCharFilterStatement_ptr x);

  BOOL_ptr visit(MysqlShowFullTextStatement_ptr x);
  void endVisit(MysqlShowFullTextStatement_ptr x);

  BOOL_ptr visit(MysqlShowCreateFullTextStatement_ptr x);
  void endVisit(MysqlShowCreateFullTextStatement_ptr x);

  BOOL_ptr visit(MysqlAlterFullTextStatement_ptr x);
  void endVisit(MysqlAlterFullTextStatement_ptr x);

  BOOL_ptr visit(MysqlDropFullTextStatement_ptr x);
  void endVisit(MysqlDropFullTextStatement_ptr x);

  BOOL_ptr visit(MysqlCreateFullTextTokenizerStatement_ptr x);
  void endVisit(MysqlCreateFullTextTokenizerStatement_ptr x);

  BOOL_ptr visit(MysqlCreateFullTextTokenFilterStatement_ptr x);
  void endVisit(MysqlCreateFullTextTokenFilterStatement_ptr x);

  BOOL_ptr visit(MysqlCreateFullTextAnalyzerStatement_ptr x);
  void endVisit(MysqlCreateFullTextAnalyzerStatement_ptr x);

  BOOL_ptr visit(MysqlCreateFullTextDictionaryStatement_ptr x);
  void endVisit(MysqlCreateFullTextDictionaryStatement_ptr x);

  BOOL_ptr visit(MySqlAlterTableAlterFullTextIndex_ptr x);
  void endVisit(MySqlAlterTableAlterFullTextIndex_ptr x);

  BOOL_ptr visit(MySqlExecuteForAdsStatement_ptr x);
  void endVisit(MySqlExecuteForAdsStatement_ptr x);

  BOOL_ptr visit(MySqlManageInstanceGroupStatement_ptr x);
  void endVisit(MySqlManageInstanceGroupStatement_ptr x);

  BOOL_ptr visit(MySqlRaftMemberChangeStatement_ptr x);
  void endVisit(MySqlRaftMemberChangeStatement_ptr x);

  BOOL_ptr visit(MySqlRaftLeaderTransferStatement_ptr x);
  void endVisit(MySqlRaftLeaderTransferStatement_ptr x);

  BOOL_ptr visit(MySqlMigrateStatement_ptr x);
  void endVisit(MySqlMigrateStatement_ptr x);

  BOOL_ptr visit(MySqlShowClusterNameStatement_ptr x);
  void endVisit(MySqlShowClusterNameStatement_ptr x);

  BOOL_ptr visit(MySqlShowJobStatusStatement_ptr x);
  void endVisit(MySqlShowJobStatusStatement_ptr x);

  BOOL_ptr visit(MySqlShowMigrateTaskStatusStatement_ptr x);
  void endVisit(MySqlShowMigrateTaskStatusStatement_ptr x);

  BOOL_ptr visit(MySqlSubPartitionByValue_ptr x);
  void endVisit(MySqlSubPartitionByValue_ptr x);

  BOOL_ptr visit(MySqlExtPartition_ptr x);
  void endVisit(MySqlExtPartition_ptr x);

  BOOL_ptr visit(MySqlExtPartition_Item_ptr x);
  void endVisit(MySqlExtPartition_Item_ptr x);

  BOOL_ptr visit(MySqlJSONTableExpr_ptr x);
  void endVisit(MySqlJSONTableExpr_ptr x) ;

  BOOL_ptr visit(MySqlJSONTableExpr_Column_ptr x) ;
  void endVisit(MySqlJSONTableExpr_Column_ptr x) ;

  BOOL_ptr visit(MysqlAlterTableAlterCheck_ptr x);
  void endVisit(MysqlAlterTableAlterCheck_ptr x);

  BOOL_ptr visit(MySqlXAStatement_ptr x);
  void endVisit(MySqlXAStatement_ptr x);
};
